package ch00.ch04;

/**
 * 饲养员 - 只能饲养动物（边界）- 具体饲养的动物是什么呢？ （泛型）
 * @Author lzp
 * @Date 2024-04-07
 */
public class SiYangYuan<A extends Animal> {

    /**
     * 喂养
     * @param a 目标动物
     */
    public void WeiYang(A a){
        a.eat();
    }

    /**
     * 体检
     * @param a 目标动物
     */
    public void XuCha(A a){

        Class<? extends Animal> clazz = a.getClass();

        if (clazz.isAnnotationPresent(Sleep.class)) {
            Sleep annotation = clazz.getAnnotation(Sleep.class);
            String value = annotation.value();
            if ("失眠".equals(value)){
                System.out.println("喂安眠药");
            }
            System.out.println("继续巡查");
        }

    }

    /**
     * 体检
     * @param a 目标动物
     */
    public void TiJian(A a){
        Class<? extends Animal> clazz = a.getClass();

        if (clazz.isAnnotationPresent(JianKang.class)) {

            String value = clazz.getAnnotation(JianKang.class).value();

            if ("差".equals(value)){
                System.out.println("特别照顾");
            }
            System.out.println("继续体检");
        }
    }

    public void sum(int i, int i1) {
    }
}
